/** Definition of the DataProcedure class.
 * @file 
 * @author Jeremy Schultz
 */

#ifndef	__DATAPROCEDURE_H_
#define	__DATAPROCEDURE_H_

#include <string>
#include <sstream>
#include <vector>
#include "WordData.h"

#define DATAPROCEDURE	static_cast<DataProcedure*>

using namespace std;

/** Provide support for a Procedures in WordData.
 */
class DataProcedure : public WordData	{
	private:
		int addressLabel;		/**< Stores the Procedure Address Label */

	public:
		/** Constructor.
		 */
		DataProcedure();

		/** Constructor.
		 * @param _addressLabel The value of the Procedure Address Label
		 */
		DataProcedure(int _addressLabel);

		/** Getter - Address Label.
		 * @return The address label
		 */
		int AddressLabel();

		/** Setter - Address Label.
		 * @param _addressLabel	Set the value to this Procedure's Address Label
		 */
		void setAddressLabel(int _addressLabel);


		/** A String representation of DataProcedure.
		 * @return A string
		 * The string format will be: <br>
		 *  type: <i>int</i> lAddress: <i>int</i> 
		 */
		string toString();
};
#endif

